package designPatterns.createMode.factory;

/**
 * Created by thinkpad on 2015/7/19.
 * 工厂模式是根据不同的参数创建对象。例如用工厂创建人。 如果我们想要一个男孩，工厂就会为我们生产一个男孩；
 * 如果我们需要一个女孩，工厂则会为我们生产一个女孩。工厂会根据不同的参数，为我们提供不同的物品。
 */
interface Human {
    public void Talk();
    public void Walk();
}

class Boy implements Human{
    @Override
    public void Talk() {
        System.out.println("Boy is talking...");
    }

    @Override
    public void Walk() {
        System.out.println("Boy is walking...");
    }
}

class Girl implements Human{

    @Override
    public void Talk() {
        System.out.println("Girl is talking...");
    }

    @Override
    public void Walk() {
        System.out.println("Girl is walking...");
    }
}

public class HumanFactory {
    public static Human createHuman(String m){
        Human p = null;
        if(m == "boy"){
            p = new Boy();
        }else if(m == "girl"){
            p = new Girl();
        }

        return p;
    }

    public static void main(String args[]) {
        Human  girl = createHuman("girl");
        Human  boy = createHuman("boy");
        girl.Talk();
        girl.Walk();
        boy.Talk();
        boy.Walk();
    }
}
